package com.jwd.avmanager.entity;

import com.jwd.avmanager.util.DebugLogger;

/**
 * 收到消息解码后的实体
 */
public class DecodePacket {
    public static final int HEADER_LENGTH = 12;
    private short cmdType;//2个字节，命令的ID
    private short serialNo;//2个字节，命令的附加码
    private int cmdLength;//4个字节，命令长度，长度包括协议头和协议体数据
    private int devIdx = -1;//4个字节，设备的索引，由平台的分配，分配配时是（-1）
    private byte[] bytes = null;//整体的协议数据
    private byte[] body = null;//除去头部的数据包


    private byte[] byteNowSec = null;
    private byte[] byteNowUsec = null;
    private byte[] byteUsAngle = null;
    private byte[] byteUsSpeed = null;
    private byte[] byteUcLongitudeDegree = null;
    private byte[] byteUcLongitudeScore = null;
    private byte[] byteUcLatitudeDegree = null;
    private byte[] byteUcLatitudeScore = null;
    private byte[] byteUnLongitudeSecond = null;
    private byte[] byteUnLatitudeSecond = null;
    private byte[] byteUsHigh = null;
    private byte[] byteUsTempera = null;
    private byte[] byteUcSatelliteNumber = null;
    private byte[] byteUcStatus = null;


    public DecodePacket(short cmdType, short serialNo, int cmdLength, int devIdx, byte[] bytes, byte[] body) {
        this.cmdType = cmdType;
        this.serialNo = serialNo;
        this.cmdLength = cmdLength;
        this.devIdx = devIdx;
        this.bytes = bytes;
        this.body = body;
    }

    public static int getHeaderLength() {
        return HEADER_LENGTH;
    }

    public short getCmdType() {
        return cmdType;
    }

    public void setCmdType(short cmdType) {
        this.cmdType = cmdType;
    }

    public short getSerialNo() {
        return serialNo;
    }

    public void setSerialNo(short serialNo) {
        this.serialNo = serialNo;
    }

    public int getCmdLength() {
        return cmdLength;
    }

    public void setCmdLength(int cmdLength) {
        this.cmdLength = cmdLength;
    }

    public int getDevIdx() {
        return devIdx;
    }

    public void setDevIdx(int devIdx) {
        this.devIdx = devIdx;
    }

    public byte[] getBytes() {
        return bytes;
    }

    public void setBytes(byte[] bytes) {
        this.bytes = bytes;
    }

    public byte[] getBody() {
        return body;
    }

    public void setBody(byte[] body) {
        this.body = body;
    }


    //----------------------------------------------------------------------------------

    public byte[] getByteNowSec() {
        return byteNowSec;
    }

    public void setByteNowSec(byte[] byteNowSec) {
        this.byteNowSec = byteNowSec;
    }

    public byte[] getByteNowUsec() {
        return byteNowUsec;
    }

    public void setByteNowUsec(byte[] byteNowUsec) {
        this.byteNowUsec = byteNowUsec;
    }

    public byte[] getByteUsAngle() {
        return byteUsAngle;
    }

    public void setByteUsAngle(byte[] byteUsAngle) {
        this.byteUsAngle = byteUsAngle;
    }

    public byte[] getByteUsSpeed() {
        return byteUsSpeed;
    }

    public void setByteUsSpeed(byte[] byteUsSpeed) {
        this.byteUsSpeed = byteUsSpeed;
    }

    public byte[] getByteUcLongitudeDegree() {
        return byteUcLongitudeDegree;
    }

    public void setByteUcLongitudeDegree(byte[] byteUcLongitudeDegree) {
        this.byteUcLongitudeDegree = byteUcLongitudeDegree;
    }

    public byte[] getByteUcLongitudeScore() {
        return byteUcLongitudeScore;
    }

    public void setByteUcLongitudeScore(byte[] byteUcLongitudeScore) {
        this.byteUcLongitudeScore = byteUcLongitudeScore;
    }

    public byte[] getByteUcLatitudeDegree() {
        return byteUcLatitudeDegree;
    }

    public void setByteUcLatitudeDegree(byte[] byteUcLatitudeDegree) {
        this.byteUcLatitudeDegree = byteUcLatitudeDegree;
    }

    public byte[] getByteUcLatitudeScore() {
        return byteUcLatitudeScore;
    }

    public void setByteUcLatitudeScore(byte[] byteUcLatitudeScore) {
        this.byteUcLatitudeScore = byteUcLatitudeScore;
    }

    public byte[] getByteUnLongitudeSecond() {
        return byteUnLongitudeSecond;
    }

    public void setByteUnLongitudeSecond(byte[] byteUnLongitudeSecond) {
        this.byteUnLongitudeSecond = byteUnLongitudeSecond;
    }

    public byte[] getByteUnLatitudeSecond() {
        return byteUnLatitudeSecond;
    }

    public void setByteUnLatitudeSecond(byte[] byteUnLatitudeSecond) {
        this.byteUnLatitudeSecond = byteUnLatitudeSecond;
    }

    public byte[] getByteUsHigh() {
        return byteUsHigh;
    }

    public void setByteUsHigh(byte[] byteUsHigh) {
        this.byteUsHigh = byteUsHigh;
    }

    public byte[] getByteUsTempera() {
        return byteUsTempera;
    }

    public void setByteUsTempera(byte[] byteUsTempera) {
        this.byteUsTempera = byteUsTempera;
    }

    public byte[] getByteUcSatelliteNumber() {
        return byteUcSatelliteNumber;
    }

    public void setByteUcSatelliteNumber(byte[] byteUcSatelliteNumber) {
        this.byteUcSatelliteNumber = byteUcSatelliteNumber;
    }

    public byte[] getByteUcStatus() {
        return byteUcStatus;
    }

    public void setByteUcStatus(byte[] byteUcStatus) {
        this.byteUcStatus = byteUcStatus;
    }

    //----------------------------------------------------------------------------------

    @Override
    public String toString() {
        return "DecodePacket{" +
                "cmdType=" + cmdType +
                ", serialNo=" + serialNo +
                ", cmdLength=" + cmdLength +
                ", devIdx=" + devIdx +
                '}';
    }
}
